/*//////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2002-2007 Intel Corporation. All Rights Reserved.
//
*/

#include "umc_defs.h"

#if defined (UMC_ENABLE_AC3_AUDIO_DECODER)

#include "ac3_dec_tables.h"

/*
* Table 5.13 Frame Size Code Table, p. 38,
* ATSC Digital Audio Compression (AC-3) Standard
* 20 Dec 95
* NOTE: words/syncframe is reverse order for convenience
*/

const frmsize_t FRAMESIZECODE[] = {
{ 0x20, {0x40, 0x45, 0x60}},
{ 0x20, {0x40, 0x46, 0x60}},
{ 0x28, {0x50, 0x57, 0x78}},
{ 0x28, {0x50, 0x58, 0x78}},
{ 0x30, {0x60, 0x68, 0x90}},
{ 0x30, {0x60, 0x69, 0x90}},
{ 0x38, {0x70, 0x79, 0xa8}},
{ 0x38, {0x70, 0x7a, 0xa8}},
{ 0x40, {0x80, 0x8b, 0xc0}},
{ 0x40, {0x80, 0x8c, 0xc0}},
{ 0x50, {0xa0, 0xae, 0xf0}},
{ 0x50, {0xa0, 0xaf, 0xf0}},
{ 0x60, {0xc0, 0xd0, 0x120}},
{ 0x60, {0xc0, 0xd1, 0x120}},
{ 0x70, {0xe0, 0xf3, 0x150}},
{ 0x70, {0xe0, 0xf4, 0x150}},
{ 0x80, {0x100, 0x116, 0x180}},
{ 0x80, {0x100, 0x117, 0x180}},
{ 0xa0, {0x140, 0x15c, 0x1e0}},
{ 0xa0, {0x140, 0x15d, 0x1e0}},
{ 0xc0, {0x180, 0x1a1, 0x240}},
{ 0xc0, {0x180, 0x1a2, 0x240}},
{ 0xe0, {0x1c0, 0x1e7, 0x2a0}},
{ 0xe0, {0x1c0, 0x1e8, 0x2a0}},
{ 0x100, {0x200, 0x22d, 0x300}},
{ 0x100, {0x200, 0x22e, 0x300}},
{ 0x140, {0x280, 0x2b8, 0x3c0}},
{ 0x140, {0x280, 0x2b9, 0x3c0}},
{ 0x180, {0x300, 0x343, 0x480}},
{ 0x180, {0x300, 0x344, 0x480}},
{ 0x1c0, {0x380, 0x3cf, 0x540}},
{ 0x1c0, {0x380, 0x3d0, 0x540}},
{ 0x200, {0x400, 0x45a, 0x600}},
{ 0x200, {0x400, 0x45b, 0x600}},
{ 0x240, {0x480, 0x4e5, 0x6c0}},
{ 0x240, {0x480, 0x4e6, 0x6c0}},
{ 0x280, {0x500, 0x571, 0x780}},
{ 0x280, {0x500, 0x572, 0x780}}
};
const Ipp32s SAMPLING_RATE[] = { 48000, 44100, 32000 };
const Ipp16u NFCHANS[] = { 2, 1, 2, 3, 3, 4, 4, 5 };

Ipp16s  UNGRP5[128] = {
  0x0000, 0x0010, 0x0020, 0x0030, 0x0040,
  0x0100, 0x0110, 0x0120, 0x0130, 0x0140,
  0x0200, 0x0210, 0x0220, 0x0230, 0x0240,
  0x0300, 0x0310, 0x0320, 0x0330, 0x0340,
  0x0400, 0x0410, 0x0420, 0x0430, 0x0440,
  0x1000, 0x1010, 0x1020, 0x1030, 0x1040,
  0x1100, 0x1110, 0x1120, 0x1130, 0x1140,
  0x1200, 0x1210, 0x1220, 0x1230, 0x1240,
  0x1300, 0x1310, 0x1320, 0x1330, 0x1340,
  0x1400, 0x1410, 0x1420, 0x1430, 0x1440,
  0x2000, 0x2010, 0x2020, 0x2030, 0x2040,
  0x2100, 0x2110, 0x2120, 0x2130, 0x2140,
  0x2200, 0x2210, 0x2220, 0x2230, 0x2240,
  0x2300, 0x2310, 0x2320, 0x2330, 0x2340,
  0x2400, 0x2410, 0x2420, 0x2430, 0x2440,
  0x3000, 0x3010, 0x3020, 0x3030, 0x3040,
  0x3100, 0x3110, 0x3120, 0x3130, 0x3140,
  0x3200, 0x3210, 0x3220, 0x3230, 0x3240,
  0x3300, 0x3310, 0x3320, 0x3330, 0x3340,
  0x3400, 0x3410, 0x3420, 0x3430, 0x3440,
  0x4000, 0x4010, 0x4020, 0x4030, 0x4040,
  0x4100, 0x4110, 0x4120, 0x4130, 0x4140,
  0x4200, 0x4210, 0x4220, 0x4230, 0x4240,
  0x4300, 0x4310, 0x4320, 0x4330, 0x4340,
  0x4400, 0x4410, 0x4420, 0x4430, 0x4440,
  0, 0, 0
};

Ipp16s SLOWDEC[] = { 0x0f, 0x11, 0x13, 0x15 };
Ipp16s FASTDEC[] = { 0x3f, 0x53, 0x67, 0x7b };
Ipp16s SLOWGAIN[] = { 0x540, 0x4d8, 0x478, 0x410 };
Ipp16s DBPBTAB[] = { 0x000, 0x700, 0x900, 0xb00 };

Ipp16s FLOORTAB[] =
  { 0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, -0x800 };

Ipp16s FASTGAIN[] = { 0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400 };

Ipp16s BNDTAB[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  20, 21, 22, 23, 24, 25, 26, 27, 28, 31,
  34, 37, 40, 43, 46, 49, 55, 61, 67, 73,
  79, 85, 97, 109, 121, 133, 157, 181, 205, 229
};

Ipp16s BNDSZ[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
  3, 3, 3, 3, 3, 6, 6, 6, 6, 6,
  6, 12, 12, 12, 12, 24, 24, 24, 24, 24
};

Ipp16s MASKTAB[] = {
  0,   1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, 29,
  29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 33, 33, 33, 34, 34,
  34, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 37, 37, 37,
  37, 37, 37, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 40,
  40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43,
  43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44,
  44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
  45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46,
  46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
  46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
  47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48,
  48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
  48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, 0
};

/*
* Table 7.14 Log-Addition Table, p. 62,
* ATSC Digital Audio Compression (AC-3) Standard
* 20 Dec 95
*/
Ipp16s  LATAB[] = {
64, 63, 62, 61, 60, 59, 58, 57, 56, 55,
54, 53, 52, 52, 51, 50, 49, 48, 47, 47,
46, 45, 44, 44, 43, 42, 41, 41, 40, 39,
38, 38, 37, 36, 36, 35, 35, 34, 33, 33,
32, 32, 31, 30, 30, 29, 29, 28, 28, 27,
27, 26, 26, 25, 25, 24, 24, 23, 23, 22,
22, 21, 21, 21, 20, 20, 19, 19, 19, 18,
18, 18, 17, 17, 17, 16, 16, 16, 15, 15,
15, 14, 14, 14, 13, 13, 13, 13, 12, 12,
12, 12, 11, 11, 11, 11, 10, 10, 10, 10,
10,  9,  9,  9,  9,  9,  8,  8,  8,  8,
 8,  8,  7,  7,  7,  7,  7,  7,  6,  6,
 6,  6,  6,  6,  6,  6,  5,  5,  5,  5,
 5,  5,  5,  5,  4,  4,  4,  4,  4,  4,
 4,  4,  4,  4,  4,  3,  3,  3,  3,  3,
 3,  3,  3,  3,  3,  3,  3,  3,  3,  2,
 2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
 2,  2,  2,  2,  2,  2,  2,  2,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};

Ipp16s  HTH[][50] =
  { {0x04d0, 0x04d0, 0x0440, 0x0400, 0x03e0, 0x03c0, 0x03b0, 0x03b0,
     0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x0390, 0x0390, 0x0390,
     0x0380, 0x0380, 0x0370, 0x0370, 0x0360, 0x0360, 0x0350, 0x0350,
     0x0340, 0x0340, 0x0330, 0x0320, 0x0310, 0x0300, 0x02f0, 0x02f0,
     0x02f0, 0x02f0, 0x0300, 0x0310, 0x0340, 0x0390, 0x03e0, 0x0420,
     0x0460, 0x0490, 0x04a0, 0x0460, 0x0440, 0x0440, 0x0520, 0x0800,
     0x0840, 0x0840},

{0x04f0, 0x04f0, 0x0460, 0x0410, 0x03e0, 0x03d0, 0x03c0, 0x03b0,
 0x03b0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x0390, 0x0390,
 0x0390, 0x0380, 0x0380, 0x0380, 0x0370, 0x0370, 0x0360, 0x0360,
 0x0350, 0x0350, 0x0340, 0x0340, 0x0320, 0x0310, 0x0300, 0x02f0,
 0x02f0, 0x02f0, 0x02f0, 0x0300, 0x0320, 0x0350, 0x0390, 0x03e0,
 0x0420, 0x0450, 0x04a0, 0x0490, 0x0460, 0x0440, 0x0480, 0x0630,
 0x0840, 0x0840},

{0x0580, 0x0580, 0x04b0, 0x0450, 0x0420, 0x03f0, 0x03e0, 0x03d0,
 0x03c0, 0x03b0, 0x03b0, 0x03b0, 0x03a0, 0x03a0, 0x03a0, 0x03a0,
 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x0390, 0x0390, 0x0390, 0x0390,
 0x0380, 0x0380, 0x0380, 0x0370, 0x0360, 0x0350, 0x0340, 0x0330,
 0x0320, 0x0310, 0x0300, 0x02f0, 0x02f0, 0x02f0, 0x0300, 0x0310,
 0x0330, 0x0350, 0x03c0, 0x0410, 0x0470, 0x04a0, 0x0460, 0x0440,
 0x0450, 0x04e0}
};

Ipp8u BAPTAB[] = {
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
  1,  1,  2,  2,  3,  3,  3,  4,  4,  5,  5,  6,  6,  6,  6,  7,
  7,  7,  7,  8,  8,  8,  8,  9,  9,  9,  9, 10, 10, 10, 10, 11,
 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14,
 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
 15, 15, 15, 15
 };

Ipp32f phscorFac[8][8][4][5] = /* [out_acmod][acmod][surmixlev][chan] */
{
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.611282f, 0.611282f, 0.611282f, 0.000000f, 0.000000f, },
      { 0.611282f, 0.611282f, 0.611282f, 0.000000f, 0.000000f, },
      { 0.611282f, 0.611282f, 0.611282f, 0.000000f, 0.000000f, },
      { 0.611282f, 0.611282f, 0.611282f, 0.000000f, 0.000000f, },
    },
    {
      { 0.633795f, 0.633795f, 0.633795f, 0.000000f, 0.000000f, },
      { 0.633795f, 0.633795f, 0.633795f, 0.000000f, 0.000000f, },
      { 0.958144f, 0.958144f, 0.958144f, 0.000000f, 0.000000f, },
      { 0.633795f, 0.633795f, 0.633795f, 0.000000f, 0.000000f, },
    },
    {
      { 0.805288f, 0.805288f, 0.805288f, 0.805288f, 0.000000f, },
      { 0.805288f, 0.805288f, 0.805288f, 0.805288f, 0.000000f, },
      { 0.984480f, 0.984480f, 0.984480f, 0.984480f, 0.000000f, },
      { 0.805288f, 0.805288f, 0.805288f, 0.805288f, 0.000000f, },
    },
    {
      { 0.811531f, 0.811531f, 0.811531f, 0.811531f, 0.000000f, },
      { 0.811531f, 0.811531f, 0.811531f, 0.811531f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 0.811531f, 0.811531f, 0.811531f, 0.811531f, 0.000000f, },
    },
    {
      { 0.889881f, 0.889881f, 0.889881f, 0.889881f, 0.889881f, },
      { 0.889881f, 0.889881f, 0.889881f, 0.889881f, 0.889881f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, },
      { 0.889881f, 0.889881f, 0.889881f, 0.889881f, 0.889881f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.000000f, },
    },
    {
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, },
      { 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
    },
    {
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
    },
    {
      { 0.731344f, 0.731344f, 0.731344f, 0.731344f, 0.000000f, },
      { 0.731344f, 0.731344f, 0.731344f, 0.731344f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.577852f, 0.000000f, },
      { 0.731344f, 0.731344f, 0.731344f, 0.731344f, 0.000000f, },
    },
    {
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
    },
    {
      { 0.670906f, 0.670906f, 0.670906f, 0.670906f, 0.670906f, },
      { 0.670906f, 0.670906f, 0.670906f, 0.670906f, 0.670906f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.577852f, 0.577852f, },
      { 0.670906f, 0.670906f, 0.670906f, 0.670906f, 0.670906f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.511944f, 0.511944f, 0.511944f, 0.000000f, 0.000000f, },
    },
    {
      { 0.404238f, 0.000000f, 0.404238f, 0.404238f, 0.000000f, },
      { 0.404238f, 0.000000f, 0.404238f, 0.404238f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.404238f, 0.000000f, 0.404238f, 0.404238f, 0.000000f, },
    },
    {
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.474093f, 0.474093f, 0.474093f, 0.474093f, 0.000000f, },
    },
    {
      { 0.408953f, 0.000000f, 0.408953f, 0.408953f, 0.408953f, },
      { 0.408953f, 0.000000f, 0.408953f, 0.408953f, 0.408953f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.408953f, 0.000000f, 0.408953f, 0.408953f, 0.408953f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
      { 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
    },
    {
      { 0.432121f, 0.432121f, 0.432121f, 0.432121f, 0.432121f, },
      { 0.432121f, 0.432121f, 0.432121f, 0.432121f, 0.432121f, },
      { 0.607919f, 0.607919f, 0.607919f, 0.607919f, 0.607919f, },
      { 0.432121f, 0.432121f, 0.432121f, 0.432121f, 0.432121f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
      { 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.525907f, 0.525907f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.453469f, 0.453469f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.453469f, 0.453469f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.637986f, 0.637986f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.453469f, 0.453469f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.472722f, 0.472722f, 0.472722f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.410774f, 0.410774f, 0.410774f, 0.000000f, 0.000000f, },
      { 0.410774f, 0.410774f, 0.410774f, 0.000000f, 0.000000f, },
      { 0.577852f, 0.577852f, 0.577852f, 0.000000f, 0.000000f, },
      { 0.410774f, 0.410774f, 0.410774f, 0.000000f, 0.000000f, },
    },
  },
  {
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
    {
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
      { 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, },
    },
  },
};

Ipp32f phsCorTab[] =
{
  2.378414230f, 2.244924096f, 2.118926189f, 2.000000000f,
  1.887748625f, 1.781797436f, 1.681792830f, 1.587401052f,
  1.498307077f, 1.414213562f, 1.334839854f, 1.259921050f,
  1.189207115f, 1.122462048f, 1.059463094f, 1.000000000f,
  0.943874312f, 0.890898718f, 0.840896415f, 0.793700526f,
  0.749153538f, 0.707106781f, 0.667419927f, 0.629960525f,
  0.594603557f, 0.561231024f, 0.529731547f, 0.500000000f,
  0.471937156f, 0.445449359f, 0.420448207f
};

Ipp32f WindowTable[] = {
    -2348.81030f,     -4026.53174f,     -6207.56982f,     -8556.37988f,
   -11240.73438f,    -14428.40527f,    -17951.62109f,    -21810.38086f,
   -26340.22852f,    -31373.39453f,    -36909.87500f,    -42949.67188f,
   -49828.33203f,    -57210.30469f,    -65431.14063f,    -74323.07031f,
   -84053.85156f,    -94623.50000f,   -106032.00781f,   -118447.14844f,
  -131701.14063f,   -146129.54688f,   -161396.81250f,   -178006.26563f,
  -195622.34375f,   -214580.59375f,   -234713.25000f,   -256020.31250f,
  -278837.34375f,   -302996.53125f,   -328665.65625f,   -355844.75000f,
  -384533.78125f,   -414732.78125f,   -446609.50000f,   -480331.68750f,
  -515563.84375f,   -552641.50000f,   -591732.43750f,   -632501.06250f,
  -675282.93750f,   -720078.12500f,   -766886.56250f,   -815708.25000f,
  -866543.18750f,   -919559.18750f,   -974756.25000f,  -1032302.12500f,
 -1091861.25000f,  -1153936.87500f,  -1218193.62500f,  -1284799.25000f,
 -1353753.50000f,  -1425224.50000f,  -1499044.25000f,  -1575212.75000f,
 -1654065.75000f,  -1735267.50000f,  -1818985.75000f,  -1905220.62500f,
 -1993972.12500f,  -2085240.12500f,  -2179024.75000f,  -2275493.75000f,
 -2374311.50000f,  -2475813.75000f,  -2579664.75000f,  -2686200.00000f,
 -2795252.00000f,  -2906652.75000f,  -3020737.75000f,  -3137171.50000f,
 -3255954.25000f,  -3377253.50000f,  -3500901.75000f,  -3626898.50000f,
 -3755076.50000f,  -3885771.00000f,  -4018478.75000f,  -4153535.25000f,
 -4290605.00000f,  -4429856.00000f,  -4571120.50000f,  -4714397.50000f,
 -4859520.50000f,  -5006489.00000f,  -5155470.50000f,  -5305962.50000f,
 -5458131.50000f,  -5611979.00000f,  -5767336.00000f,  -5924202.50000f,
 -6082244.00000f,  -6241795.50000f,  -6402353.50000f,  -6564253.50000f,
 -6726992.50000f,  -6890738.00000f,  -7055490.50000f,  -7220914.00000f,
 -7387008.00000f,  -7553606.00000f,  -7720875.00000f,  -7888479.00000f,
 -8056419.00000f,  -8224527.00000f,  -8392802.00000f,  -8561078.00000f,
 -8729353.00000f,  -8897461.00000f,  -9065233.00000f,  -9232670.00000f,
 -9399603.00000f,  -9566201.00000f,  -9731960.00000f,  -9897047.00000f,
-10061296.00000f, -10224707.00000f, -10387110.00000f, -10548339.00000f,
-10708394.00000f, -10867274.00000f, -11024812.00000f, -11180840.00000f,
-11335358.00000f, -11488366.00000f, -11639529.00000f, -11789182.00000f,
 11936989.00000f,  12082783.00000f,  12226732.00000f,  12368667.00000f,
 12508589.00000f,  12646330.00000f,  12781890.00000f,  12915269.00000f,
 13046299.00000f,  13175148.00000f,  13301480.00000f,  13425464.00000f,
 13547099.00000f,  13666217.00000f,  13782651.00000f,  13896736.00000f,
 14008304.00000f,  14117188.00000f,  14223556.00000f,  14327407.00000f,
 14428574.00000f,  14527056.00000f,  14623021.00000f,  14716303.00000f,
 14807068.00000f,  14895148.00000f,  14980544.00000f,  15063423.00000f,
 15143786.00000f,  15221633.00000f,  15296794.00000f,  15369608.00000f,
 15439736.00000f,  15507516.00000f,  15572947.00000f,  15635862.00000f,
 15696428.00000f,  15754812.00000f,  15810848.00000f,  15864535.00000f,
 15916042.00000f,  15965534.00000f,  16012846.00000f,  16057977.00000f,
 16101262.00000f,  16142534.00000f,  16181793.00000f,  16219206.00000f,
 16254941.00000f,  16288831.00000f,  16321043.00000f,  16351578.00000f,
 16380435.00000f,  16407949.00000f,  16433786.00000f,  16458281.00000f,
 16481266.00000f,  16503076.00000f,  16523544.00000f,  16542671.00000f,
 16560790.00000f,  16577735.00000f,  16593505.00000f,  16608437.00000f,
 16622195.00000f,  16635113.00000f,  16647193.00000f,  16658266.00000f,
 16668667.00000f,  16678398.00000f,  16687290.00000f,  16695511.00000f,
 16703061.00000f,  16710107.00000f,  16716650.00000f,  16722522.00000f,
 16727891.00000f,  16732924.00000f,  16737454.00000f,  16741648.00000f,
 16745507.00000f,  16748863.00000f,  16752050.00000f,  16754902.00000f,
 16757419.00000f,  16759600.00000f,  16761781.00000f,  16763626.00000f,
 16765304.00000f,  16766814.00000f,  16768156.00000f,  16769331.00000f,
 16770337.00000f,  16771344.00000f,  16772015.00000f,  16772854.00000f,
 16773525.00000f,  16774028.00000f,  16774532.00000f,  16774867.00000f,
 16775203.00000f,  16775538.00000f,  16775874.00000f,  16776042.00000f,
 16776209.00000f,  16776377.00000f,  16776545.00000f,  16776713.00000f,
 16776880.00000f,  16776880.00000f,  16776880.00000f,  16777048.00000f,
 16777048.00000f,  16777048.00000f,  16777048.00000f,  16777216.00000f,
 16777216.00000f,  16777216.00000f,  16777216.00000f,  16777216.00000f,
 16777216.00000f,  16777216.00000f,  16777216.00000f,  16777216.00000f,
 16777216.00000f,  16777216.00000f,  16777216.00000f,  16777216.00000f,
-16777216.00000f, -16777216.00000f, -16777216.00000f, -16777216.00000f,
-16777216.00000f, -16777216.00000f, -16777216.00000f, -16777216.00000f,
-16777216.00000f, -16777216.00000f, -16777216.00000f, -16777216.00000f,
-16777216.00000f, -16777048.00000f, -16777048.00000f, -16777048.00000f,
-16777048.00000f, -16776880.00000f, -16776880.00000f, -16776880.00000f,
-16776713.00000f, -16776545.00000f, -16776377.00000f, -16776209.00000f,
-16776042.00000f, -16775874.00000f, -16775538.00000f, -16775203.00000f,
-16774867.00000f, -16774532.00000f, -16774028.00000f, -16773525.00000f,
-16772854.00000f, -16772015.00000f, -16771344.00000f, -16770337.00000f,
-16769331.00000f, -16768156.00000f, -16766814.00000f, -16765304.00000f,
-16763626.00000f, -16761781.00000f, -16759600.00000f, -16757419.00000f,
-16754902.00000f, -16752050.00000f, -16748863.00000f, -16745507.00000f,
-16741648.00000f, -16737454.00000f, -16732924.00000f, -16727891.00000f,
-16722522.00000f, -16716650.00000f, -16710107.00000f, -16703061.00000f,
-16695511.00000f, -16687290.00000f, -16678398.00000f, -16668667.00000f,
-16658266.00000f, -16647193.00000f, -16635113.00000f, -16622195.00000f,
-16608437.00000f, -16593505.00000f, -16577735.00000f, -16560790.00000f,
-16542671.00000f, -16523544.00000f, -16503076.00000f, -16481266.00000f,
-16458281.00000f, -16433786.00000f, -16407949.00000f, -16380435.00000f,
-16351578.00000f, -16321043.00000f, -16288831.00000f, -16254941.00000f,
-16219206.00000f, -16181793.00000f, -16142534.00000f, -16101262.00000f,
-16057977.00000f, -16012846.00000f, -15965534.00000f, -15916042.00000f,
-15864535.00000f, -15810848.00000f, -15754812.00000f, -15696428.00000f,
-15635862.00000f, -15572947.00000f, -15507516.00000f, -15439736.00000f,
-15369608.00000f, -15296794.00000f, -15221633.00000f, -15143786.00000f,
-15063423.00000f, -14980544.00000f, -14895148.00000f, -14807068.00000f,
-14716303.00000f, -14623021.00000f, -14527056.00000f, -14428574.00000f,
-14327407.00000f, -14223556.00000f, -14117188.00000f, -14008304.00000f,
-13896736.00000f, -13782651.00000f, -13666217.00000f, -13547099.00000f,
-13425464.00000f, -13301480.00000f, -13175148.00000f, -13046299.00000f,
-12915269.00000f, -12781890.00000f, -12646330.00000f, -12508589.00000f,
-12368667.00000f, -12226732.00000f, -12082783.00000f, -11936989.00000f,
-11789182.00000f, -11639529.00000f, -11488366.00000f, -11335358.00000f,
-11180840.00000f, -11024812.00000f, -10867274.00000f, -10708394.00000f,
-10548339.00000f, -10387110.00000f, -10224707.00000f, -10061296.00000f,
 -9897047.00000f,  -9731960.00000f,  -9566201.00000f,  -9399603.00000f,
 -9232670.00000f,  -9065233.00000f,  -8897461.00000f,  -8729353.00000f,
 -8561078.00000f,  -8392802.00000f,  -8224527.00000f,  -8056419.00000f,
 -7888479.00000f,  -7720875.00000f,  -7553606.00000f,  -7387008.00000f,
 -7220914.00000f,  -7055490.50000f,  -6890738.00000f,  -6726992.50000f,
 -6564253.50000f,  -6402353.50000f,  -6241795.50000f,  -6082244.00000f,
 -5924202.50000f,  -5767336.00000f,  -5611979.00000f,  -5458131.50000f,
 -5305962.50000f,  -5155470.50000f,  -5006489.00000f,  -4859520.50000f,
 -4714397.50000f,  -4571120.50000f,  -4429856.00000f,  -4290605.00000f,
 -4153535.25000f,  -4018478.75000f,  -3885771.00000f,  -3755076.50000f,
 -3626898.50000f,  -3500901.75000f,  -3377253.50000f,  -3255954.25000f,
 -3137171.50000f,  -3020737.75000f,  -2906652.75000f,  -2795252.00000f,
 -2686200.00000f,  -2579664.75000f,  -2475813.75000f,  -2374311.50000f,
 -2275493.75000f,  -2179024.75000f,  -2085240.12500f,  -1993972.12500f,
 -1905220.62500f,  -1818985.75000f,  -1735267.50000f,  -1654065.75000f,
 -1575212.75000f,  -1499044.25000f,  -1425224.50000f,  -1353753.50000f,
 -1284799.25000f,  -1218193.62500f,  -1153936.87500f,  -1091861.25000f,
 -1032302.12500f,   -974756.25000f,   -919559.18750f,   -866543.18750f,
  -815708.25000f,   -766886.56250f,   -720078.12500f,   -675282.93750f,
  -632501.06250f,   -591732.43750f,   -552641.50000f,   -515563.84375f,
  -480331.68750f,   -446609.50000f,   -414732.78125f,   -384533.78125f,
  -355844.75000f,   -328665.65625f,   -302996.53125f,   -278837.34375f,
  -256020.31250f,   -234713.25000f,   -214580.59375f,   -195622.34375f,
  -178006.26563f,   -161396.81250f,   -146129.54688f,   -131701.14063f,
  -118447.14844f,   -106032.00781f,    -94623.50000f,    -84053.85156f,
   -74323.07031f,    -65431.14063f,    -57210.30469f,    -49828.33203f,
   -42949.67188f,    -36909.87500f,    -31373.39453f,    -26340.22852f,
   -21810.38086f,    -17951.62109f,    -14428.40527f,    -11240.73438f,
    -8556.37988f,     -6207.56982f,     -4026.53174f,     -2348.81030f
};

#endif //UMC_ENABLE_AC3_AUDIO_DECODER


